package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;

/**
 * 数据库操作类，用于演示用户注册功能
 * 通过JDBC连接MySQL数据库并实现用户信息的插入操作
 * 
 * 主要功能：
 * 1. 建立数据库连接
 * 2. 获取用户输入信息
 * 3. 执行用户注册（插入用户数据）
 * 4. 数据库连接关闭
 */
public class lkj {
    /**
     * 程序入口函数，执行用户注册流程
     * 
     * 主要步骤：
     * 1. 加载JDBC驱动
     * 2. 建立数据库连接
     * 3. 通过控制台获取用户输入
     * 4. 构建并执行SQL插入语句
     * 5. 完成数据库操作并关闭连接
     * 
     * @param args 命令行参数（未使用）
     * @return void 没有返回值
     * 
     * 异常处理：捕获并打印所有异常信息
     */
    public static void main(String[] args) {
        try {
            // 加载MySQL JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            
            // 建立数据库连接
            Connection connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root");

            System.out.println("链接数据库成功");
            Scanner scanner = new Scanner(System.in);
            
            // 获取用户输入信息
            System.out.println("欢迎注册");
            System.out.println("请输入用户名");
            String username = scanner.nextLine();
            System.out.println("请输入密码");
            String password = scanner.nextLine();
            System.out.println("请输入昵称");
            String nickname = scanner.nextLine();
            System.out.println("请输入年龄");
            int age = scanner.nextInt();
            
            // 构建SQL插入语句
            String sql = "insert into user(username,password,nickname,age) values('"+username+"','"+password+"','"+nickname+"',"+age+")";
            
            // 执行SQL语句完成用户注册
            Statement statement = connection.createStatement();
            int num = statement.executeUpdate(sql);
            System.out.println(num > 0 ? "注册成功" : "注册失败");
            
            // 关闭数据库连接
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
